#ifndef GAMEDATA_H
#define GAMEDATA_H

#include <QtGui>
#include "map.h"
#include "envobject.h"
#include "boulderobject.h"
#include "gateobject.h"
#include "lasergunobject.h"
#include "laserreceiverobject.h"
#include "mirrorobject.h"
#include "pivotdoor.h"
#include "portalobject.h"
#include "player.h"

class GameData {
    private:
        GameData();

    public:
        // QHashes of textures
        static QHash<QString, QPixmap*> interfaceTextures;
        static QHash<QString, QPixmap*> floorTextures;
        static QHash<QString, QPixmap*> wallTextures;
        static QHash<QString, QPixmap*> doorTextures;
        static QHash<QString, QPixmap*> objectTextures;
        static QHash<QString, QPixmap*> itemTextures;

        static QList<QPixmap*> avatarN;
        static QList<QPixmap*> avatarE;
        static QList<QPixmap*> avatarS;
        static QList<QPixmap*> avatarW;

        // methods
        static void importTextures();
        static Map* importMap(QString mapName);
        static void exportMap(Map *, QString destination);
        static Player* importPlayerData(QString username);
        static void exportSaveFile(Player *player);

        // util methods
        static bool removeDir(const QString dirPath);
        static bool copyDir(QString srcPath, QString dstPath);
};

#endif // GAMEDATA_H
